package cn.wolfcode.wolf2w.persistence;

import cn.wolfcode.wolf2w.cache.service.IStrategyRedisService;
import cn.wolfcode.wolf2w.cache.vo.StrategyStatisVO;
import cn.wolfcode.wolf2w.service.IStrategyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;

import java.util.List;

/**
 * redis数据库持久化任务
 */

//@Component （扫描定时器  持久化）
public class RedisDataPersistenceJob {
    @Autowired
    private IStrategyRedisService strategyRedisService;
    @Autowired
    private IStrategyService strategyService;

    // Cron表达式是一个字符串，字符串以5或6个空格隔开，分为6或7个域，每个域表达一个含义，
    //  秒  分  时  几号 月  周几  年
    @Scheduled(cron = "0/10 * * * * *") // 设置周期时间（10s）
    public void persistence(){
        System.out.println("vo持久化----------------------------start");

        // 查询所有vo对象
        List<StrategyStatisVO> vos = strategyRedisService.queryStrategyVoBypattern("*");


        // 遍历vo对象， 更新到mongodb数据库中
        for (StrategyStatisVO vo : vos) {
            strategyService.updateStrategyVo(vo);
        }
        System.out.println("vo持久化----------------------------end");
    }
}
